﻿using System.Drawing;
using System.Windows.Forms.Extensions.Model;

namespace System.Windows.Forms.Extensions.Appearance.Interface
{
    public interface INotifierPanel
    {
        /// <summary>
        /// Set color scheme
        /// </summary>
        void SetTheme(ITheme theme);

        /// <summary>
        /// Set texts
        /// </summary>
        void SetText(NotifierMessage message);

        /// <summary>
        /// Set notifier icon
        /// </summary>
        void SetIcon(Image icon);

        /// <summary>
        /// Clickable type - just a button or whole panel
        /// </summary>
        void SetClickableArea(Constants.ClickableControls concealmentMethod);

        /// <summary>
        /// Fire if want to hide
        /// </summary>
        event EventHandler<EventArgs> HideNotifierPanelEvent;

        #region Control interface

        /// <summary>
        /// Is visible? - implemented in Control
        /// </summary>
        bool Visible { get; set; }

        /// <summary>
        /// Top - implemented in Control
        /// </summary>
        int Top { get; set; }

        /// <summary>
        /// Height - implemented in Control
        /// </summary>
        int Height { get; set; }

        /// <summary>
        /// BackColor - implemented in Control
        /// </summary>
        Color BackColor { get; set; }

        /// <summary>
        /// Panel's parent - implemented in Control
        /// </summary>
        Control Parent { get; set; }

        /// <summary>
        /// Bring notifier to the front - implemented in Control
        /// </summary>
        void BringToFront();

        #endregion

    }
}
